package kr.hkit.powerjava.chapter08;

class A{ //메소드는 순차적으로 실행된다 aa()->bb()호출->cc호출->cc()->bb()->aa()
/*	public void aa(){
		System.out.println("aa - start");
		bb();
		System.out.println("aa - end");
	}
	
	public void bb(){
		
		System.out.println("bb - start");
		cc();
		System.out.println("bb - end");
	}
	
	public void cc(){
		System.out.println("cc - start");
		System.out.println("cc - end");
	}*/
	
	public void aa(){ /* 메소드 오버로딩 예제 */
		System.out.println("aa()");
	}
	
	public void aa(int a){
		System.out.println("aa(int a)");
	}
	
/*	public void aa(int a, int b){}
	public void aa(int a, int b, int c){}     // 인수가 계속 증가할경우 메소드를 계속 만들어야 할까??
*/	
	public void aa(int ...a){
		System.out.println("인수의 개수 : "+ a.length);
		for(int c: a){								// a(1)~ a(n)개 까지...
			System.out.println(c);
		}
	}
	
/*	public void bb(int...c, String str){
		
	}      오류가 난다         */
	public void bb(String str, int...c){
		System.out.println(str);
		System.out.println("인수의 개수 : " + c.length);
		for (int d: c){
			System.out.println(d+" ");
		}
	}// end of method bb
	
	public void aa(double a){
		System.out.println("aa(double a)");
	}
}// end of class A


public class MethodCallTest {
	public static void main(String[] args){
		A a = new A();
		a.aa();
		a.aa(2);
		a.aa(2.0);	
		a.aa(1,2,3,4); //가변 길이 인수... a.aa(1,2,3,4,5,6.......);
		
		System.out.println("=====================");
		
		a.bb("a", 1,2,4,5); // 문자 하나와.... 가변길이 인수 		
	}
}
